import java.io.*;
import java.util.Scanner;

public class demo17 {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要复制的源文件路径");
        String srcPath = scanner.next();
        System.out.println("请输入要复制到的目标路径");
        String destPath = scanner.next();
        File srcFile = new File(srcPath);
        //对于源文件作出的要求是这个源文件必须是真是存在的
        if (!srcFile.isFile()) {
            System.out.println("源文件不存在或者不是普通文件");
            return;
        }
        //对于目标文件的要求是这个文件你可以不真实哦存在, 因为我们写文件的时候 如果文件不存在就会自动创建. 但是对于你这个文件所在的目录一定要是存在的
        File destFile = new File(destPath);
        if (!destFile.getParentFile().isDirectory()) {
            System.out.println("目标文件所在目录不存在 不合理,请进行调整");
            return;
        }
        //写操作的话 如果文件不存在 会自动创建一个文件
        try (InputStream inputStream = new FileInputStream(srcFile); OutputStream outputStream = new FileOutputStream(destFile)) {
            //先读取文件
            while (true) {
                byte[] bytes = new byte[1024];
                int read = inputStream.read(bytes);
                if (read == -1) {
                    //读完了
                    break;
                }
                //注意这里得写不是直接无脑全部写入 而是要规定范围
                outputStream.write(bytes, 0, read);
            }
        }
    }
}
